package com.zwb.mongostudy.config;

import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.lang.NonNull;

import java.util.Collection;
import java.util.Optional;

/**
 * @author zhongwb
 */
public interface MongoTemplateManager {
    Optional<MongoTemplate> getTemplate(@NonNull String var1);

    default Optional<MongoTemplate> getTemplate(@NonNull String datasourceName, boolean tryGetDefaultTemplateIfMissing) {
        return tryGetDefaultTemplateIfMissing ? this.getTemplate(datasourceName).or(this::getDefaultTemplate) : this.getTemplate(datasourceName);
    }

    Optional<MongoTemplate> getDefaultTemplate();

    Collection<MongoTemplate> getAllTemplates();
}
